import threading
import time


def run(n):
    global num
    lock.acquire()
    num+=1
    time.sleep(1)#等50s
    lock.release()

lock = threading.Lock()#加锁之后变成串行
num= 0
listt = []#存线程实例
for i in range(50):
    t = threading.Thread(target=run,args=('T->%s'%i,))
    t.start()
    listt.append(t)#为了不阻塞后面线程的启动，不在这里join，先放到一个列表里
for t in listt:#循环线程实例列表，等待所有线程执行完毕
    t.join()
print('********',threading.current_thread(),threading.active_count())
print('num',num)
